The currently available technologies fall under two classes. The first class is protocol analyzers, and the second class is digital logic analyzers that have communication parsing solutions. Protocol analyzers do not provide methods for allowing out-of-band signals to be captured in the context of a USB stream. The out-of-band signals are signals that are not a part of the USB signaling scheme or USB data stream; they may also be referred to as digital inputs. At best, these protocol analyzers provide a way for triggering a capture of data and allowing for a certain amount of pre-triggered data to be captured. They do not, however, allow users to see the state of a non-USB-related signal.
It is fairly common to see protocol analyzers with the ability to trigger or start a capture based on some external input signal. However, protocol analyzers typically do not have the ability to tag non-USB-related external events and present these events within the context of a monitored data stream. Such inputs to the analyzer can be used in any number of ways, and can be left as general as possible so that a user may use the data as the user sees fit.
Alternatively, digital logic analyzers or high-end oscilloscopes can be configured in a complicated manner to achieve some aspect of this goal. However, these analyzers and oscilloscopes do not operate in the same way as protocol analyzers because they are meant to be general purpose measurement tools. Accordingly, these analyzers and oscilloscopes simply sample all monitored lines at the fastest rate possible and do not differentiate between USB specific signals and non-USB signals.
FIG. 1 illustrates a block diagram for a protocol analyzer using a prior art method. A USB circuitry 2 transmits USB data that is sensed by a packet logic 4. The sensed USB data is then stored in a packet first-in-first-out (“FIFO”) buffer 6. The data in the packet FIFO buffer 6 is written to an analysis computer (herein referred to as a “PC”).
FIG. 2 illustrates a returned data stream for a protocol analyzer using a prior art method. When an analyzer senses a USB packet, the packet is transmitted in a data stream with a timestamp of when the USB packet was detected. For instance, when the analyzer detects a USB packet A at time t0, the analysis stream reflects this by generating the USB packet A with the timestamp t0. However, the analyzer does not provide information regarding the changing digital input. As the state of the digital input signal changes from low to high at time t1, or high to low at time t3, the analysis stream does not reflect these changes. Therefore, it is desirable to provide methods and circuits to generate a data stream that reflects the various states of the digital input signal and the user data.
Digital logic analyzers and some high-end oscilloscopes provide users with the ability to capture signals transmitted over communication lines, and provide some level of parsing of the captured data. Due to the nature of these devices, it is trivial to display other non-protocol-related lines within the same viewing window. These analyzers and oscilloscopes, however, do not provide the same streaming capabilities, nor advanced filtering techniques, that are prevalent in protocol analyzers. Furthermore, these analyzers and oscilloscopes must provide equal resources for USB and non-USB signals since they are general purpose measurement tools, where each signal is sampled and its value stored in order to preserve the general purpose quality of the logic analyzer. Therefore, it is desirable to provide methods and circuits that overcome these limits of the prior art.
Currently, USB specific protocol analyzers do not provide for displaying or processing of non-protocol-based signals. Although logic analyzers and oscilloscopes can provide visibility to a large number of signals in parallel, and can be used with high-end protocol parsers, they do not provide the same streaming and filtering capabilities of protocol analyzers. Therefore, it is desirable to provide methods for embedding out-of-band signals into a signal analysis stream.